Estoy tratando de convertir los formatos 18:00:00.000 a 24H (18:00) y 12H (6PM) usando date-fns. Sin embargo, el valor de entrada de 18:00:00.000 da un "RangeError: valor de tiempo no válido".
Mi código
dateFns.format(new Date(18:00:00.000), 'H:mm')No tengo problema si paso la hora en formato dateTime como 2022-01-04T11:00:00.000Z pero solo necesito la hora (horas y minutos).
Su código está fallando porque new Date() requiere una cadena de fecha y hora válida para crear un nuevo objeto de fecha. Para solucionar esto, simplemente formule una cadena de fecha actual y adjunte la marca de tiempo que necesita y pásela al new Date() . Luego puede pasar el objeto de fecha al método de formato para obtener el resultado deseado.
Consulte esta tabla para formatear sus fechas según sus requisitos.
const now = dateFns.format(new Date(), 'YYYY-MM-DD'); const custTime = '18:00:00.000'; const custDt = new Date(`${now} ${custTime}`); console.log(dateFns.format(custDt, 'h:mm A')); <script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/2.0.0-alpha0/date_fns.min.js" integrity="sha512-0kon+2zxkK5yhflwFqaTaIhLVDKGVH0YH/jm8P8Bab/4EOgC/n7gWyy7WE4EXrfPOVDeNdaebiAng0nsfeFd9A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>